package com.silence.springboot.dao;

import com.mybatisflex.core.query.QueryWrapper;
import com.silence.springboot.entity.LoginAdminEntity;
import com.silence.springboot.mapper.LoginAdminMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;

import java.util.List;

import static com.silence.springboot.entity.table.LoginAdminEntityTableDef.LOGIN_ADMIN_ENTITY;

/**
 * 登录表 数据访问层实现。
 */
@Slf4j
@Repository
@RequiredArgsConstructor
public class LoginAdminDao {

    /**
     * 登录表 Mapper 接口
     */
    private final LoginAdminMapper loginAdminMapper;

    /**
     * 根据用户名查询登录表实体类
     *
     * @param username 用户名
     * @return 登录表实体类
     */
    public LoginAdminEntity selectOneByQuery(String username) {
        // 查询数据库中的用户名和密码
        return loginAdminMapper.selectOneByQuery(QueryWrapper.create()
                .select()
                .from(LOGIN_ADMIN_ENTITY)
                .where(LOGIN_ADMIN_ENTITY.USERNAME.eq(username)));
    }

    /**
     * 新增登录表实体类
     *
     * @param loginAdminEntity 登录表实体类
     */
    public void insert(LoginAdminEntity loginAdminEntity) {
        loginAdminMapper.insertSelective(loginAdminEntity);
    }

    /**
     * 根据id删除登录表实体类
     *
     * @param id 登录表实体类id
     */
    public void deleteById(Long id) {
        loginAdminMapper.deleteById(id);
    }

    /**
     * 根据id批量删除登录表实体类
     *
     * @param ids 登录表实体类id列表
     */
    public void deleteBatchByIds(List<Long> ids) {
        loginAdminMapper.deleteBatchByIds(ids);
    }
}
